package com.example.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.entity.PsLineInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.vo.PsLineInfoVo;
import com.example.vo.PsPoleInfoVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yt
 * @since 2024-04-22
 */
public interface PsLineInfoService extends IService<PsLineInfo> {

    /**
     * 路线状态下拉
     * @return
     */
    List<PsLineInfo> runningStatus();

    /**
     * 查询所有路线下拉
     * @return
     */
    List<PsLineInfo> selectLineCode();

    /**
     * 查询启动状态下拉
     * @return
     */
    List<PsLineInfo> selectIsStart();

    List<PsLineInfo> down();

    /**
     * 选择目标数据，点击删除，若成功，提示删除成功；若不成功，提示失败原因。
     * 约束：所属线路不为空，不能被删除，只能停用；所属线路为空，可以被删除。
     * @param id
     */
    int delete(Integer id);

    /**
     * 修改状态
     * @param
     * @return
     */
    int updateIsStart(PsLineInfo psLineInfo);

    /**
     * 查询
     * @param page Mybatis-Plus所提供的分页对象,必须位于第一个参数的位置
     * @param psLineInfoVo
     * @return
     */
    IPage<PsLineInfo> findBySearch(@Param("page") Page<PsLineInfo> page, PsLineInfoVo psLineInfoVo);

    /**
     *新增路线
     */
     void addPsLineInfo(PsLineInfo psLineInfo);


    /**
     * 修改路线
     */
    void updatePsLineInfo(PsLineInfo psLineInfo);

    /**
     * 查询线路信息
     * @return
     */
    List<PsLineInfo> listpli();

}
